﻿using UnityEngine;
using System.Collections;
//如果程序中的一个实体想要被其他实体感知,必须继承该类,初始化,并add到感知系统中,如果想要感知其他东西的话,必须重写感知函数.
public class AbstractSensorEntity : MonoBehaviour {
    private float vision_sense_distance;
    public float VisionSenseDistance
    {
        get { return vision_sense_distance; }
    }

    private float auditory_sense_distance;
    public float AuditorySenseDistance
    {
        get { return auditory_sense_distance; }
    }

    private float smell_sense_distance;
    public float SmellSenseDistance
    {
        get { return smell_sense_distance; }
    }

    private float super_sense_distance;
    public float SuperSenseDistance
    {
        get { return super_sense_distance; }
    }

    public virtual void InitializeSense(float vsd, float asd, float ssd, float supsd)
    {
        this.vision_sense_distance = vsd;
        this.auditory_sense_distance = asd;
        this.smell_sense_distance = ssd;
        this.super_sense_distance = supsd;
    }


    public virtual void VisionSense(object senseObject)
    {

    }

    public virtual void AuditorySense(object senseObject)
    {

    }

    public virtual void SmellSense(object senseObject)
    {

    }

    public virtual void SuperSense(object senseObject)
    {

    }

    private float be_visible_distance;
    public float BeVisibleDistance
    {
        get { return be_visible_distance; }
    }

    private float be_audible_distance;
    public float BeAudibleDistance
    {
        get { return be_audible_distance; }
    }

    private float be_smelled_distance;
    public float BeSmelledDistance
    {
        get { return be_smelled_distance; }
    }

    public virtual void InitializeSAtt(float visible, float audible, float smelled)
    {
        this.be_visible_distance = visible;
        this.be_audible_distance = audible;
        this.be_smelled_distance = smelled;
    }

}
